import pandas as pd
import numpy as np

# === Series创建的多种方式 ===

# 方法1: 从列表创建
data_list = [10, 20, 30, 40, 50]
series_from_list = pd.Series(data_list)
print("从列表创建的Series:")
print(series_from_list)
print("索引类型:", type(series_from_list.index))

# 方法2: 指定索引创建
series_with_index = pd.Series(data_list, index=['第一', '第二', '第三', '第四', '第五'])
print("\n带自定义索引的Series:")
print(series_with_index)

# 方法3: 从字典创建（推荐，键自动成为索引）
data_dict = {'苹果': 3.5, '香蕉': 2.8, '橙子': 4.2, '葡萄': 6.0, '草莓': 8.5}
series_from_dict = pd.Series(data_dict)
print("\n从字典创建的Series:")
print(series_from_dict)

# 方法4: 从NumPy数组创建
np_array = np.random.randint(1, 100, 6)
series_from_numpy = pd.Series(np_array, index=[f'数据{i}' for i in range(1, 7)])
print("\n从NumPy数组创建的Series:")
print(series_from_numpy)

# 方法5: 从标量值创建（会广播到指定索引）
series_scalar = pd.Series(100, index=['a', 'b', 'c', 'd'])
print("\n从标量值创建的Series:")
print(series_scalar)

# 方法6: 指定数据类型
series_with_dtype = pd.Series([1, 2, 3, 4], dtype='float64')
print("\n指定数据类型的Series:")
print(series_with_dtype)
print("数据类型:", series_with_dtype.dtype)


# 基本属性
print("=== Series基本属性 ===")
s = series_from_dict  # 使用水果价格Series
values = s.values
index = s.index
print("索引对象:", s.index)
print("索引列表:", s.index.tolist())
print("数据类型:", s.dtype)
print("形状:", s.shape)
print("大小:", s.size)
print("维度:", s.ndim)
print("是否为空:", s.empty)
print("内存使用:", s.memory_usage(deep=True), "bytes")

s.name = "水果价格"
s.index.name = "水果种类"

print(s)

# === Series统计方法 ===
print("\n=== Series统计信息 ===")
print("总和:", s.sum())
print("均值:", s.mean())
print("中位数:", s.median())
print("标准差:", s.std())
print("方差:", s.var())
print("最小值:", s.min())
print("最大值:", s.max())
print("最小值索引:", s.idxmin())
print("最大值索引:", s.idxmax())
print("唯一值数量:", s.nunique())
print("唯一值:", s.unique())
print("值计数:")
print(s.value_counts())
